<template>
  <div>
    <app-container>
      <generate-form ref="generateForm" :data="jsonData" :remote="remoteFuncs" :value="editData" />
      <div class="generate-block">
        <el-button type="primary" @click="handleSubmit">查询</el-button>
        <el-button type="primary">重置</el-button>
      </div>
    </app-container>
    <app-container>
      <generate-table ref="generateTable" :data="jsonDataTable" :remote="remoteFuncs" :value="editData">
        <!--自定义新增编辑页面内容-->
        <!--<template slot="table_dialog" slot-scope="scope">-->
        <!--<generate-form :ref="scope.form" :data="jsonData" :remote="remoteFuncs" :value="scope.data"/>-->
        <!--</template>-->
      </generate-table>
    </app-container>
  </div>
</template>
<script>
import GenerateForm from '@/components/CreateForm/GenerateForm'
import '@/components/CreateForm/styles/FormCreate.css'
import { getCodeList } from '@/api/codelist'
import GenerateTable from '@/components/CreateTable/GenerateTable'
export default {
  name: 'CreateFromSetname',
  components: {
    GenerateForm,
    GenerateTable
  },
  data: function() {
    return {
      jsonData: {
        'list': [
          {
            'type': 'grid',
            'name': '栅格布局',
            'icon': 'th',
            'columns': [
              {
                'span': 6,
                'list': [
                  {
                    'type': 'upload',
                    'name': '组织机构代码',
                    'icon': 'upload',
                    'options': {
                      'defaultValue': [],
                      'action': 'https://jsonplaceholder.typicode.com/posts/',
                      'multiple': true,
                      'limit': 3,
                      'drag': false,
                      'disabled': false,
                      'required': false,
                      'width': '100%',
                      'remoteFunc': 'func_1542619367000_11051'
                    },
                    'key': '1542619367000_11051',
                    'model': 'upload_1542619367000_11051',
                    'rules': []
                  }
                ]
              },
              {
                'span': 6,
                'list': [
                  {
                    'type': 'select',
                    'name': '账户类型',
                    'icon': 'regular/caret-square-down',
                    'options': {
                      'defaultValue': '',
                      'multiple': false,
                      'disabled': false,
                      'clearable': false,
                      'placeholder': '',
                      'required': false,
                      'showLabel': false,
                      'width': '100%',
                      'options': [
                        {
                          'value': '下拉框1'
                        },
                        {
                          'value': '下拉框2'
                        },
                        {
                          'value': '下拉框3'
                        }
                      ],
                      'remote': true,
                      'remoteOptions': [],
                      'props': {
                        'value': 'value',
                        'label': 'label'
                      },
                      'remoteFunc': 'AccountKind'
                    },
                    'key': '1542619378000_23679',
                    'model': 'select_1542619378000_23679',
                    'rules': []
                  }
                ]
              },
              {
                'span': 6,
                'list': [
                  {
                    'type': 'select',
                    'name': '银行类别',
                    'icon': 'regular/caret-square-down',
                    'options': {
                      'defaultValue': '',
                      'multiple': false,
                      'disabled': false,
                      'clearable': false,
                      'placeholder': '',
                      'required': false,
                      'showLabel': false,
                      'width': '100%',
                      'options': [
                        {
                          'value': '下拉框1'
                        },
                        {
                          'value': '下拉框2'
                        },
                        {
                          'value': '下拉框3'
                        }
                      ],
                      'remote': true,
                      'remoteOptions': [],
                      'props': {
                        'value': 'value',
                        'label': 'label'
                      },
                      'remoteFunc': 'BankKind'
                    },
                    'key': '1542619396000_6945',
                    'model': 'select_1542619396000_6945',
                    'rules': []
                  }
                ]
              },
              {
                'span': 6,
                'list': [
                  {
                    'type': 'select',
                    'name': '账户状态',
                    'icon': 'regular/caret-square-down',
                    'options': {
                      'defaultValue': '',
                      'multiple': false,
                      'disabled': false,
                      'clearable': false,
                      'placeholder': '',
                      'required': false,
                      'showLabel': false,
                      'width': '100%',
                      'options': [
                        {
                          'value': '下拉框1'
                        },
                        {
                          'value': '下拉框2'
                        },
                        {
                          'value': '下拉框3'
                        }
                      ],
                      'remote': true,
                      'remoteOptions': [],
                      'props': {
                        'value': 'value',
                        'label': 'label'
                      },
                      'remoteFunc': 'AccountState'
                    },
                    'key': '1542619416000_14055',
                    'model': 'select_1542619416000_14055',
                    'rules': []
                  }
                ]
              }
            ],
            'options': {
              'gutter': 0,
              'justify': 'start',
              'align': 'top',
              'remoteFunc': 'func_1542619358000_52493'
            },
            'key': '1542619358000_52493',
            'model': 'grid_1542619358000_52493',
            'rules': []
          },
          {
            'type': 'grid',
            'name': '栅格布局',
            'icon': 'th',
            'columns': [
              {
                'span': 6,
                'list': [
                  {
                    'type': 'input',
                    'name': '账号',
                    'icon': 'regular/keyboard',
                    'options': {
                      'width': '100%',
                      'defaultValue': '',
                      'required': false,
                      'dataType': 'string',
                      'pattern': '',
                      'placeholder': '',
                      'readonly': false,
                      'disabled': false,
                      'clearable': false,
                      'remoteFunc': 'func_1542619432000_17785'
                    },
                    'key': '1542619432000_17785',
                    'model': 'input_1542619432000_17785',
                    'rules': [
                      {
                        'type': 'string',
                        'message': '单行文本格式不正确'
                      }
                    ]
                  }
                ]
              },
              {
                'span': 6,
                'list': [
                  {
                    'type': 'select',
                    'name': '账户性质',
                    'icon': 'regular/caret-square-down',
                    'options': {
                      'defaultValue': '',
                      'multiple': false,
                      'disabled': false,
                      'clearable': false,
                      'placeholder': '',
                      'required': false,
                      'showLabel': false,
                      'width': '100%',
                      'options': [
                        {
                          'value': '下拉框1'
                        },
                        {
                          'value': '下拉框2'
                        },
                        {
                          'value': '下拉框3'
                        }
                      ],
                      'remote': true,
                      'remoteOptions': [],
                      'props': {
                        'value': 'value',
                        'label': 'label'
                      },
                      'remoteFunc': 'AccountNature'
                    },
                    'key': '1542619442000_20845',
                    'model': 'select_1542619442000_20845',
                    'rules': []
                  }
                ]
              },
              {
                'span': 6,
                'list': []
              },
              {
                'span': 6,
                'list': []
              }
            ],
            'options': {
              'gutter': 0,
              'justify': 'start',
              'align': 'top',
              'remoteFunc': 'func_1542619359000_34661'
            },
            'key': '1542619359000_34661',
            'model': 'grid_1542619359000_34661',
            'rules': []
          }
        ],
        'config': {
          'labelWidth': 100,
          'labelPosition': 'right'
        },
        'table': {
          'showRemove': false,
          'showIndexCol': false,
          'showEdit': false,
          'showExport': false,
          'showAdd': false,
          'stripe': true,
          'border': false
        }
      },
      jsonDataTable:
        {
          'list': [
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '开户单位',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619563000_40720'
                      },
                      'key': '1542619563000_40720',
                      'model': 'input_1542619563000_40720',
                      'rules': [
                        {
                          'type': 'string',
                          'message': '单行文本格式不正确'
                        }
                      ]
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '账号',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619569000_70956'
                      },
                      'key': '1542619569000_70956',
                      'model': 'input_1542619569000_70956',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '账户名',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619575000_40194'
                      },
                      'key': '1542619575000_40194',
                      'model': 'input_1542619575000_40194',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'select',
                      'name': '币种',
                      'icon': 'regular/caret-square-down',
                      'options': {
                        'defaultValue': '',
                        'multiple': false,
                        'disabled': false,
                        'clearable': false,
                        'placeholder': '',
                        'required': false,
                        'showLabel': false,
                        'width': '100%',
                        'options': [
                          {
                            'value': '下拉框1'
                          },
                          {
                            'value': '下拉框2'
                          },
                          {
                            'value': '下拉框3'
                          }
                        ],
                        'remote': true,
                        'remoteOptions': [],
                        'props': {
                          'value': 'value',
                          'label': 'label'
                        },
                        'remoteFunc': 'Currency'
                      },
                      'key': '1542619584000_88264',
                      'model': 'select_1542619584000_88264',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1542619559000_37961'
              },
              'key': '1542619559000_37961',
              'model': 'grid_1542619559000_37961',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '账户余额',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619630000_96330'
                      },
                      'key': '1542619630000_96330',
                      'model': 'input_1542619630000_96330',
                      'rules': [
                        {
                          'type': 'string',
                          'message': '单行文本格式不正确'
                        }
                      ]
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '可用余额',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619640000_97363'
                      },
                      'key': '1542619640000_97363',
                      'model': 'input_1542619640000_97363',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '控制金额',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619647000_9426'
                      },
                      'key': '1542619647000_9426',
                      'model': 'input_1542619647000_9426',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '冻结金额',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619655000_89131'
                      },
                      'key': '1542619655000_89131',
                      'model': 'input_1542619655000_89131',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1542619621000_84227'
              },
              'key': '1542619621000_84227',
              'model': 'grid_1542619621000_84227',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '利率',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619666000_41411'
                      },
                      'key': '1542619666000_41411',
                      'model': 'input_1542619666000_41411',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'select',
                      'name': '账户类别',
                      'icon': 'regular/caret-square-down',
                      'options': {
                        'defaultValue': '',
                        'multiple': false,
                        'disabled': false,
                        'clearable': false,
                        'placeholder': '',
                        'required': false,
                        'showLabel': false,
                        'width': '100%',
                        'options': [
                          {
                            'value': '下拉框1'
                          },
                          {
                            'value': '下拉框2'
                          },
                          {
                            'value': '下拉框3'
                          }
                        ],
                        'remote': true,
                        'remoteOptions': [],
                        'props': {
                          'value': 'value',
                          'label': 'label'
                        },
                        'remoteFunc': 'AccountType'
                      },
                      'key': '1542619680000_15892',
                      'model': 'select_1542619680000_15892',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'input',
                      'name': '协定金额',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1542619706000_46046'
                      },
                      'key': '1542619706000_46046',
                      'model': 'input_1542619706000_46046',
                      'rules': [
                        {
                          'type': 'string',
                          'message': '单行文本格式不正确'
                        }
                      ]
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'date',
                      'name': '申请日期',
                      'icon': 'regular/calendar-alt',
                      'options': {
                        'defaultValue': '',
                        'readonly': false,
                        'disabled': false,
                        'editable': true,
                        'clearable': true,
                        'placeholder': '',
                        'startPlaceholder': '',
                        'endPlaceholder': '',
                        'type': 'date',
                        'format': 'yyyy-MM-dd',
                        'timestamp': false,
                        'required': false,
                        'width': '100%',
                        'remoteFunc': 'func_1542619716000_50231'
                      },
                      'key': '1542619716000_50231',
                      'model': 'date_1542619716000_50231',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1542619659000_17461'
              },
              'key': '1542619659000_17461',
              'model': 'grid_1542619659000_17461',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 6,
                  'list': [
                    {
                      'type': 'date',
                      'name': '开户日期',
                      'icon': 'regular/calendar-alt',
                      'options': {
                        'defaultValue': '',
                        'readonly': false,
                        'disabled': false,
                        'editable': true,
                        'clearable': true,
                        'placeholder': '',
                        'startPlaceholder': '',
                        'endPlaceholder': '',
                        'type': 'date',
                        'format': 'yyyy-MM-dd',
                        'timestamp': false,
                        'required': false,
                        'width': '100%',
                        'remoteFunc': 'func_1542619727000_33120'
                      },
                      'key': '1542619727000_33120',
                      'model': 'date_1542619727000_33120',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 6,
                  'list': []
                },
                {
                  'span': 6,
                  'list': []
                },
                {
                  'span': 6,
                  'list': []
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1542619719000_45928'
              },
              'key': '1542619719000_45928',
              'model': 'grid_1542619719000_45928',
              'rules': []
            }
          ],
          'config': {
            'labelWidth': 100,
            'labelPosition': 'right'
          },
          'table': {
            'showRemove': false,
            'showIndexCol': false,
            'showEdit': false,
            'showExport': false,
            'showAdd': false,
            'stripe': true,
            'border': false
          }
        },
      editData: {},
      values: {},
      remoteFuncs: {

        AccountKind(resolve) {
          // 账户类型 select_1542619378000_23679
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('账户类型').then(response => { resolve(response.data) })
        },

        BankKind(resolve) {
          // 银行类别 select_1542619396000_6945
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('银行类别').then(response => { resolve(response.data) })
        },

        AccountState(resolve) {
          // 账户状态 select_1542619416000_14055
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('账户状态').then(response => { resolve(response.data) })
        },

        AccountNature(resolve) {
          // 账户性质 select_1542619442000_20845
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('账户性质').then(response => { resolve(response.data) })
        },
        Currency(resolve) {
          // 币种 select_1542619584000_88264
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('币种').then(response => { resolve(response.data) })
        },

        AccountType(resolve) {
          // 账户类别 select_1542619680000_15892
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('账户类别').then(response => { resolve(response.data) })
        }

      }
    }
  },
  methods: {
    handleSubmit() {
      this.$refs.generateForm.getData().then(data => {
        // 数据校验成功
        // data 为获取的表单数据
      }).catch(e => {
        // 数据校验失败
      })
    }
  }
}
</script>
